package com.jacob.cloud.mall.cartorder.service;

import com.github.pagehelper.PageInfo;
import com.jacob.cloud.mall.cartorder.model.request.CreateOrderReq;
import com.jacob.cloud.mall.cartorder.model.vo.OrderVO;

public interface IOrderService {
    /**
     * 创建订单
     * @param createOrderReq
     * @return
     */
    String createOrder(CreateOrderReq createOrderReq);

    /**
     * 根据订单号获取订单详情
     * @param orderNo
     * @return
     */
    OrderVO detail(String orderNo);

    /**
     * 前台订单列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo list(Integer pageNum, Integer pageSize);

    /**
     * 取消订单
     * @param orderNo
     */
    void cancel(String orderNo);

    /**
     * 在支付的时候显示的二维码
     * @param orderNo
     * @return
     */
    String qrCode(String orderNo);

    /***
     * 后台订单列表
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo adminList(Integer pageNum, Integer pageSize);

    /**
     * 订单支付
     * @param orderNo
     */
    void orderPay(String orderNo);

    /**
     * 订单发货
     * @param orderNo
     */
    void deliveryOrder(String orderNo);

    /**
     * 完结订单
     * @param orderNo 订单编号
     */
    void finish(String orderNo);
}
